5 逻辑型向量及其运算

您所在的位置:网站首页 r 变量类型 5 逻辑型向量及其运算

5 逻辑型向量及其运算

2024-01-18 19:15| 来源: 网络整理| 查看: 265

5 逻辑型向量及其运算 5.1 逻辑型向量与比较运算

逻辑型是R的基本数据类型之一,只有两个值TRUE和FALSE, 缺失时为NA。逻辑值一般产生自比较,如

sele = (4:1) ## [1] FALSE FALSE TRUE TRUE

从例子可以看出,向量比较也遵从R的向量间运算的一般规则: 向量与标量的运算是向量每个元素与标量都分别运算一次, 等长向量的运算时对应元素的运算, 不等长但长度为倍数关系的向量运算是把短的从头重复利用。

与NA比较产生NA,如

c(1, NA, 3) > 2 ## [1] FALSE NA TRUE NA == NA ## [1] NA

为了判断向量每个元素是否NA, 用is.na()函数,如

is.na(c(1, NA, 3) > 2) ## [1] FALSE TRUE FALSE

用is.finite()判断向量每个元素是否Inf值。

比较运算符包括

< >= == != %in%

分别表示小于、小于等于、大于、大于等于、等于、不等于、属于。 要注意等于比较用了两个等号。

%in%是比较特殊的比较, x %in% y的运算把向量y看成集合, 运算结果是一个逻辑型向量, 第\(i\)个元素的值为x的第\(i\)元素是否属于y的逻辑型值。 如

c(1,3) %in% c(2,3,4) ## [1] FALSE TRUE c(NA,3) %in% c(2,3,4) ## [1] FALSE TRUE c(1,3) %in% c(NA, 3, 4) ## [1] FALSE TRUE c(NA,3) %in% c(NA, 3, 4) ## [1] TRUE TRUE

函数match(x, y)起到和x %in% y运算类似的作用, 但是其返回结果不是找到与否, 而是对x的每个元素, 找到其在y中首次出现的下标,找不到时取缺失值,如

match(c(1, 3), c(2,3,4,3)) ## [1] NA 2 5.2 逻辑运算

为了表达如“\(x>0\)而且\(x 12) ## [1] 3 4 5

函数identical(x,y)比较两个R对象x与y的内容是否完全相同, 结果只会取标量TRUE与FALSE两种。 如

identical(c(1,2,3), c(1,2,NA)) ## [1] FALSE identical(c(1L,2L,3L), c(1,2,3)) ## [1] FALSE

其中第二个结果假值是因为前一向量是整数型, 后一向量是实数型。

函数all.equal()与identical()类似, 但是在比较数值型时不区分整数型与实数型, 而且相同时返回标量TRUE, 但是不同时会返回一个说明有何不同的字符串。如

all.equal(c(1,2,3), c(1,2,NA)) ## [1] "'is.NA' value mismatch: 1 in current 0 in target" all.equal(c(1L,2L,3L), c(1,2,3)) ## [1] TRUE

函数duplicated()返回每个元素是否为重复值的结果,如:

duplicated(c(1,2,1,3,NA,4,NA)) ## [1] FALSE FALSE TRUE FALSE FALSE FALSE TRUE

用函数unique()可以返回去掉重复值的结果。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3